Systems and methods for authorizing services in a telecommunications network

ABSTRACT

A computer-implemented method for authorizing access by a user device to at least one service offered over an Internet Protocol (IP) network is provided. A server receives a message from the user device. The message indicates that the user device is configured to support the at least one service. The server then retrieves from a database policy data associated with the user device. The server validates based on the policy data that the user device is authorized to advertise the at least one service and the at least one service is available for access by the user device. If the at least one service is unauthorized or unavailable for access by the user device, the server modifies the message to indicate one or more authorized and available services for the user device without including the at least one service.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority to U.S. patentapplication Ser. No. 13/287,657 filed on Nov. 2, 2011 which isincorporated herein by reference in its entirety and which claims thebenefit of and priority to Indian Patent Application No. 1576/MUM/2011filed May 26, 2011, which is owned by the assignee of the instantapplication and the disclosure of which is incorporated herein byreference in its entirety.

FIELD OF THE INVENTION

The invention relates generally to systems and methods for indicatingauthorized and available services for a subscriber in atelecommunications network, and more particularly to indicatingauthorized and available services in a Session Initiation Protocol (SIP)network or an Internet-protocol Multimedia Subsystem (IMS) network.

BACKGROUND OF THE INVENTION

SIP is an application-level protocol for creating, modifying and/orterminating multimedia sessions. SIP can be applied in areas such asestablishing and terminating voice, video and/or messaging sessions overthe Internet. SIP also can be used to establish video conferencing,streaming multimedia distribution, instant messaging, filter transferand online gaming. When establishing and terminating a multimediacommunication, SIP can be used to determine user locations—the locationsof end user systems for the communication, user availability—thewillingness of a called party to engage in the communication, and usercapabilities—the media or media parameters available for thecommunication. SIP also can be used to perform session setup byestablishing session parameters for the parties involved and to managesessions, including transferring and terminating sessions, modifyingsession parameters and invoking services within sessions.

IMS is an architectural framework for delivering Internet Protocol (IP)multimedia services. In many instances, IMS has adopted SIP for sessionmanagement.

SUMMARY OF THE INVENTION

The invention, in various embodiments, features systems and methods forindicating to a subscriber of a telecommunications network whether oneor more network services supported by the subscriber's user device areauthorized and/or available for use by the user device. Such informationcan also be provided to other subscribers or servers of the network whoare interested in knowing the information. The network can perform theservice authorization check prior to or during session setup or during aprocedure unrelated to establishing a communication session. The networkis adapted to reject a user device's session setup attempt(s) if theuser device has requested to access unauthorized or unavailableservices. The network can also ensure that the capabilities advertisedby one user device to other devices reflect the current status ofservices authorized and available for the user device.

In one aspect, a computer-implemented method for authorizing access by auser device to at least one service offered over an Internet Protocol(IP) network is provided. The method includes receiving, by a server, amessage from the user device. The message indicates that the user deviceis configured to support the at least one service. The method alsoincludes retrieving from a database, by the server, policy dataassociated with the user device. The method further includes validating,by the server, based on the policy data that the user device isauthorized to advertise the at least one service and the at least oneservice is available for access by the user device. If the at least oneservice is unauthorized or unavailable for access by the user device,the server is adapted to modify the message to indicate one or moreauthorized and available services for the user device without includingthe at least one service. In addition, the method includes forwarding,by the server, the message.

In another aspect, a computing device for authorizing access by a userdevice to at least one service offered over an IP network is provided.The computing device includes a database for storing policy dataassociated with the user device. The computing device also includes aserver for receiving a message from the user device. The messageindicates that the user device is configured to support the at least oneservice. In addition, the server is configured to retrieve from thedatabase policy data associated with the user device and validate basedon the policy data that the user device is authorized to advertise theat least one service and the at least one service is available foraccess by the user device. If the at least one service is unauthorizedor unavailable for access by the user device, the server modifies themessage to indicate one or more authorized and available services forthe user device without including the at least one service. In addition,the server can forward the message.

In yet another aspect, a computer program product, tangibly embodied ina computer readable medium, is provided for authorizing access by a userdevice to at least one service offered over an IP network. The computerprogram product includes instructions being operable to cause dataprocessing apparatus to receive a message from the user device. Themessage indicates that the user device is configured to support the atleast one service. The computer program product also includesinstructions being operable to cause the data processing apparatus toretrieve from a database policy data associated with the user device andvalidate based on the policy data that the user device is authorized toadvertise the at least one service and the at least one service isavailable for access by the user device. If the at least one service isunauthorized or unavailable for access by the user device, the servermodifies the message to indicate one or more authorized and availableservices for the user device without including the at least one service.In addition, the message is forwarded.

In other examples, any of the aspects above can include one or more ofthe following features. In some embodiments, the message is related tosession setup. In some embodiments, the message is not related toestablishing a session. In some embodiments, the message includes aSession Initiation Protocol (SIP) REGISTER request. In some embodiments,the message includes a SIP PUBLISH request, a SIP OPTIONS request or aSIP NOTIFY request. In some embodiments, the message includes a SIPINVITE request, a SIP SUBSCRIBE request or a SIP REFER request.

In some embodiments, the server forwards the message to the user device.In some embodiments, the server forwards the message to a second userdevice or to a network server.

In some embodiments, the policy data indicates the one or moreauthorized services currently available to the user device. The policydata can be updated by examining at least one parameter associated withthe user device or the IP network, determining one or more servicescurrently authorized and available for use by the user device based onthe at least one parameter, and removing at least a portion of thepolicy data corresponding to a service currently unavailable orunauthorized to the user device based on the determining. The at leastone parameter can describe user location, user device network accesscapability, user device hardware capability, availability of a networkresource, or a combination thereof. In some embodiments, the policy datais updated dynamically based on a change in the at least one parameter.

In some embodiments, the user device can subscribe to the server fornotification of a change in service availability to the user device. Inresponse, the server can notify the user device if the user device isnot authorized to access a service or the service is not available tothe user device.

In some embodiments, the user device is configured to support the one ormore authorized services.

In some embodiments, retrieving the policy data from the databaseinvolves the server sending a Diameter Server Assignment request to thedatabase.

In some embodiments, the server can include the at least one service ina message if the at least one service becomes authorized and availableto the user device at a later time. The server then forwards the messageto the user device or other devices in the network to indicate that theat least one service is now authorized and available to the user device.

In some embodiments, the server resides in a Serving Call SessionControl Function (S-CSCF) node or an application server of an InternetProtocol Multimedia Subsystem (IMS) network. The database storing thepolicy data can reside in a Home Subscriber Service (HSS) of an IMSnetwork. In some embodiments, the server resides in a SIP registrar or ahome proxy of a non-IMS network.

Other aspects and advantages of the invention will become apparent fromthe following detailed description, taken in conjunction with theaccompanying drawings, illustrating the principles of the invention byway of example only.

BRIEF DESCRIPTION OF THE DRAWINGS

The advantages of the invention described above, together with furtheradvantages, may be better understood by referring to the followingdescription taken in conjunction with the accompanying drawings. Thedrawings are not necessarily to scale, emphasis instead generally beingplaced upon illustrating the principles of the invention.

FIG. 1 shows a schematic diagram of an exemplary system for validating aservice for use by a user device.

FIG. 2 shows a flow diagram illustrating an exemplary operation of thesystem of FIG. 1.

FIG. 3 shows a flow diagram illustrating another exemplary operation ofthe system of FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 shows a schematic diagram of an exemplary system 100 forauthorizing service(s) for use by one or more user devices 104 in anetwork. Each user device 104 is associated with a subscriber. Thenetwork can be an IMS or a non-IMS network, such as a SIP network. Theuser device(s) 104 are coupled to a server 108, which is in turn coupledto a policy database 112 that communicates with a service authorizationserver 116.

A user device 104 can be a telephone, a computer, a personal digitalassistant (PDA) or any other electronic device capable of receivingcommunication over a telecommunications network. In some embodiments,the user device 104 can include a network server, such as an applicationserver.

The server 108 can receive SIP requests originating from or terminatingat a user device 104 of a subscriber. In addition, the server 108 cancache policy data, downloaded from the policy database 112. The policydata indicates authorized and available services for a user device. Insome embodiments, the server 108 caches the policy data for the lifetimeof the user device's registration. In some embodiments, the server 108caches the policy data for as long as the user device can use theservices even when the user device is unregistered. The server 108 canalso enforce service authorization for each user device based on thecorresponding policy data downloaded from the policy database 112. In anIMS network, the server 108 can reside on a Serving Call Session ControlFunction (S-CSCF) node or an application server. In a non-IMS network,the server 108 can reside on a SIP registrar or a Home Proxy.

The policy database 112 hosts one or more services authorized andavailable for use to a user device associated with a subscriber of thenetwork. In an IMS network, the policy database 112 can reside in theHome Subscriber Server (HSS) that maintains the profile of eachsubscriber. In a non-IMS network, according to some embodiments, thepolicy database 112 resides in the SIP registrar or the Home Proxy ofthe network. In some embodiments, in a non-IMS network, the policydatabase 112 resides in a centralized Authentication, Authorization,Accounting (AAA) Server that communicates to the SIP registrar or theHome Proxy via a communication means, such as over a RADIUS- orDIAMETER-based communication channel. In some embodiments, the policydatabase 112 communicates with the server 108 via a communicationinterface, such as the DIAMETER CX interface.

The service authorization server 116 can dynamically update policy data,stored in the policy database 112, to indicate available and/orauthorized service(s) for the user devices 104. The serviceauthorization server 116 performs such update based on, for example,user device location, subscription information, user device hardwarecapabilities, availability of certain network resources, operatorpolicies and user device's capability to access network resources.

In some embodiments, the service authorization server 116 updatesavailable and/or authorized service(s) for a user device 104 by firstlearning the type of Radio Access Technology (RAT) employed by the userdevice 104 to access the network. The service authorization server 116then calculates which services are available to the user device 104based on the user device's access network RAT type. Using thecalculations, the service authorization server 116 updates the policydata in the policy database 112 associated with the user device 104.

In some embodiments, the service authorization server 116 learns the RATtype of an access network of a user device 104 based on the “accessclass” and/or “access-type” parameters in the P-Access-Network-Infoheader of a SIP message transmitted by the user device 104 to the server108. In some embodiments, the service authorization server 116 learns auser device's RAT type by subscribing with the server 108, at the timeof SIP registration by the user device 104, to receive notificationswhenever a change occurs in the user device's RAT type. Upon receiving anotification regarding a RAT-type change, the service authorizationserver 116 updates the information about the user device 104accordingly. In some embodiments, the service authorization server 116learns the RAT type by querying the Terminating Access Domain Selection(T-ADS) information of the user device 104, which can reside in thepolicy server 112.

In some embodiments, when the service authorization server 116 decidesthat a provisioned service for a user device 104 should be disabledbecause it is not available or unauthorized, the service authorizationserver 116 updates policy data in the policy database 112 correspondingto the user device 104. In some embodiments, the policy data in thepolicy database 112 includes Dynamic Service Activation Information(DSAI). A change in the DSAI value masks or unmasks one or more initialfilter criteria associated with the user device 104, which prompts thepolicy database 112 to send a message to the server 108 notifying theserver 108 of the change in service authorization state for the userdevice 104. The initial filter criteria can specify one or moreapplication servers that need to be invoked to provide a set of servicesto a user during a session setup call flow by the S-CSCF. If an initialfilter criterion is masked, the service corresponding to the criterionis not provided to the user. Accordingly, the application serverspecified by the masked initial filter criterion is not invoked duringthe session setup call flow.

In some embodiments, the policy data in the policy database 112 includesservice-related parameters, such as core network service authorizationparameters, stored under the service profile for each user device 104 inthe policy database 112. These parameters determine the servicesauthorized and/or available for use by the user device 104.

FIG. 2 shows an exemplary operation of the system 100 for validatingservices for a user device 104 upon receiving a SIP request from theuser device. The SIP request can be a SIP REGISTER request that includesan address in its header field used by the server 108 to register thecorresponding user device 104. In some embodiments, the SIP REGISTERrequest also includes information advertising to the network the userdevice's capabilities for receiving certain services. The advertisedcapabilities can be provided as parameters in the Contact header of theSIP REGISTER request.

In operation, the server 108 receives a SIP REGISTER request from theuser device 104 (step 120). In response, the server 108 retrieves fromthe policy database 112 policy data about the service authorization andavailability status corresponding to the user device 104 (step 124). Insome embodiments, the server 108 retrieves the policy data from thepolicy database 112 by sending a Diameter Server Assignment Request(SAR) to the policy database 112. The policy data can indicate to theserver 108 which services are authorized and available for access by theuser device 104. In the event that the current policy information forthe user device 104 has been previously fetched and is stored in a cachelocal to the server 108, the server 108 can retrieve the policy datafrom the local cache. Optionally, upon the receipt of the SIP REGISTERrequest, the server 108 can authenticate the user device 104.

Based on the policy data, the server 108 then validates that each of theservices advertised by the user device 104 is authorized (step 128). Insome embodiments, if a service is authorized for use by the user device104, it may not be available to the user device 104. Therefore, theserver 108 can also determine whether a service is available to the userdevice 104. The server 108 then composes a message indicating the set ofservices authorized and available for access by the user device 104(step 132). In some embodiments, the message includes a 200 OK responseto the SIP REGISTER request sent by the user device 104 during step 120with the unauthorized or unavailable capability information removed fromthe Contact header of the request. Finally, the server 108 transmits theresponse to the user device 104 to indicate to the user device 104 theauthorized and/or available services (step 136).

As an example, the user device 104 can advertise to the server 108 via aSIP REGISTER request that it is capable of supporting services A, B, andC. In response, the server 108 downloads from the policy database 112policy data corresponding to the user device 104. The policy data mayindicate that the user device 104 can only access services B and C, eventhough the user device 104 has advertised to the network that it iscapable of supporting services A, B, and C. In such an instance, theserver 108 removes the indication of service A from the Contact headerof the 200 OK response to the SIP REGISTER request and forwards theresponse back to the user device 104.

As another example, a user device 104 sends to the server 108 a SIPREGISTER request with the following portion in its Contact header,indicating that the user device 104 supports both imageshare andvideoshare services:

Contact: <sip:subscriber1@192.168.1.8>; +g.3gpp.iari-ref:urn:urn-7:3gpp-application.ims.iari.gsma-is; +g.3gpp.iari-ref:urn:urn-7:3gpp-application.ims.iari.gsma-vs

In response, the server 108 can send the following portion of theContact header of a 200 OK response to the user device 104, indicatingthat while the imageshare service can be accessed, the videoshareservice cannot:

Contact: <sip:subscriber1@192.168.1.8>; +g.3gpp.iari-ref:urn:urn-7:3gpp-application.ims.iari.gsma-is

In some embodiments, during or after registration of a user device 104with the server 108, the user device 104 can transmit a SIP SUBSCRIBErequest to the server 108 to establish a subscription with the server108 to receive notifications, via a SIP NOTIFY request, about aparticular event, such as a change in support capabilities, associatedwith another user device 104 or with its own device 104. Both the SIPSUBSCRIBE and SIP NOTIFY requests are SIP procedures unrelated toestablishing a communication session.

As an example, during SIP registration, a user device 104 can advertisevia a SIP REGISTER request transmitted to the server 108 that it iscapable of supporting services A, B, and C. The user device 104 can alsosend a SIP SUBSCRIBE request along with the SIP REGISTER request,subscribing to be notified of any changes in the authorization and/orservice availability status of its own device. Based on the policy dataof the user device 104 downloaded from the policy database 112, theserver 108 may determine that only service A is available and authorizedfor access by the user device 104. In such a situation, the server 108removes the indication of services B and C from the Contact header ofthe 200 OK response to the SIP REGISTER request and forwards theresponse back to the user device 104. In addition, the server 108 sendsa SIP NOTIFY request to the user device 104, similarly notifying theuser device 104 that it can only access service A.

As another example, a user device 104 sends to the server 108, alongwith a SIP SUBSCRIBE request, a SIP REGISTER indicating that the userdevice 104 supports both imageshare and videoshare services. Inresponse, the server 108 can send the following portion of a NOTIFYrequest back to the user device, indicating that while the imageshareservice is authorized and available, the videoshare service is not:

<?xml version=“1.0”?> <reginfo xmlns=“urn:ietf:params:xml:ns:reginfo”version=“1” state=“full”> <registration aor=“sip:subscriber1@sp.net”id=“a7” state=“active”> <contact id=“77” state=“active”event=“registered”> <uri>sip:subscriber1@192.168.1.8 </uri><unknown-param name=“+g.3gpp.iari-ref:urn:urn-7:3gpp-application.ims.iari.gsma-is” /> </contact></registration> </reginfo>

FIG. 3 shows another exemplary operation of the system 100 forvalidating services for a user device 104 upon receiving a SIP requestfrom the user device 104. An exemplary SIP request can be a SIP INVITErequest for initiating session setup, which includes an invitation fromthe sender device 104 to another user device 104 to establish acommunication session. In some embodiments, a SIP INVITE requestincludes a Contact header with information about the sender device 104,including the sender device's capabilities for receiving certainservices. Another exemplary SIP request can be a SIP PUBLISH requestused by a sender device 104 to publish event state information to otherdevices 104 via the server 108. In some embodiments, a SIP PUBLISHrequest includes a message body, such as a Presence Information DataFormat (PIDF) message body, with information that advertises the senderdevice's presence status as well as supported device capabilities.Another exemplary SIP request can be a SIP OPTIONS request used by asender device 104 to query another device 104 or the server 108 aboutthe capabilities of the other device 104 or the server 108. In someembodiments, a SIP OPTIONS request includes a Contact header withinformation advertising the sender device's supported capabilities. Yetanother exemplary SIP request can be a SIP REFER request used by asender device 104 to ask another device 104, via the server 108, toissue a SIP request. The SIP PUBLISH, SIP OPTIONS and SIP REFER requestsare SIP procedures unrelated to establishing a communication session.

During operation, the server 108 receives a SIP request, such as a SIPINVITE, SIP PUBLISH, SIP OPTIONS or SIP REFER request, from the userdevice 104 (step 144). In response, the server 108 retrieves from thepolicy database 112 policy data about the service authorization andavailability status corresponding to the user device 104 (step 148). Insome embodiments, the server 108 retrieves the policy data from thepolicy database 112 by sending a Diameter SAR to the policy database112. The policy data can indicate to the server 108 which services areauthorized and/or available for access by the user device 104. In theevent that the current policy information for the user device 104 hasbeen previously fetched and is stored in a cache local to the server108, the server 108 can retrieve the policy data from the local cache.Based on the policy data, the server 108 then validates that each of theservices advertised by the user device 104 is authorized (step 152). Insome embodiments, even if a service is authorized for use by the userdevice 104, it may not be available to the user device 104. Therefore,the server 108 can also determine whether a service is available to theuser device 104.

The server 108 then composes a message indicating the set of servicesauthorized and available for access by the user device 104 (step 156).In some embodiments, the message includes a modification of the SIPmessage sent by the user device 104 during step 144 with theunauthorized or unavailable capability information removed from themessage. For instance, for a SIP INVITE or SIP OPTIONS request, theserver 108 can remove from the Contact header of the request theunauthorized and unavailable capability information. For a SIP PUBLISHrequest, the server 108 can remove from the message body theunauthorized and unavailable capability information. Finally, the server108 relays the modified SIP message to another network device 104 (step160).

As another example, a user device 104 can send to the server 108 a SIPPUBLISH request with the following portion of a message body, indicatesthat the user device 104 supports both imageshare and videoshareservices:

<?xml version=”1.0” encoding=”UTF-8”?> <presencexmlns=”urn:ietf:params:xml:ns:pidf”xmlns:op=”urn:oma:xml:prs:pidf:oma-pres”xmlns:opd=”urn:oma:xml:pde:pidf:ext”xmlns:c=”urn:ietf:params:xml:ns:pidf:cipid”entity=”sip:+1234578901@operator.com;user=phone”> <tuple id=”a1”><status><basic>open</basic></status> <op:service-description><op:service-id> org.gsma.imageshare</op:service-id><op:version>1.0</op:version> </op:service-description><contact>sip:subscriber1@192.168.1.8</contact> </tuple> <tuple id=”a2”><status><basic>open</basic></status> <op:service-description><op:service-id> org.gsma.videoshare</op:service-id><op:version>1.0</op:version> </op:service-description><contact>sip:subscriber1@192.168.1.8</contact> </tuple> ( ... rest ofPIDF message body ... )

In response, the server 108 can modify a portion of the message body toindicate that while the imageshare service is authorized and available,the videoshare service is not. To make such a modification, the server108 can insert a <barring-state> XML element to the message body asshown below:

<?xml version=”1.0” encoding=”UTF-8”?> <presencexmlns=”urn:ietf:params:xml:ns:pidf”xmlns:op=”urn:oma:xml:prs:pidf:oma-pres”xmlns:opd=”urn:oma:xml:pde:pidf:ext”xmlns:c=”urn:ietf:params:xml:ns:pidf:cipid”entity=”sip:+1234578901@operator.com;user=phone”> <tuple id=”a1”><status><basic>open</basic></status> <op:service-description><op:service-id>org.3gpp.cs- videotelephony</op:service-id><op:version>1.0</op:version> </op:service-description><contact>sip:subscriber1@192.168.1.8</contact> </tuple> <tuple id=”a2”><status><basic>open</basic></status> <op:barring-state> terminated</op:barring- state> <op:service-description> <op:service-id>org.gsma.videoshare</op:service-id> <op:version>1.0</op:version></op:service-description> <contact>sip:subscriber1@192.168.1.8</contact></tuple> ( ... rest of PIDF message body ... )

In some embodiments, a second user device 104 can learn about theservice authorization and availability status of a first user device 104by using the SIP SUBSCRIBE-NOTIFY request method described above. Forexample, a second user device 104 can transmit a SIP SUBSCRIBE requestto the server 108 to establish a subscription with the server 108 toreceive notifications, via a SIP NOTIFY request, about a change insupport capabilities associated with a first user device 104. Upondetecting a change in the authorization or availability status of thefirst user device 104, the server 108 is adapted to send a SIP NOTIFYrequest to the second user device 104 notifying the status change.

In some embodiments, the server 108 can continually and dynamicallynotify a first or second user device 104 the addition or removal of oneor more services that are currently available and authorized for accessby the first user device 104. For example, if the first user device 104supports video calls, but is accessing the core network 100 via anaccess network that does not support video calling at the time of deviceregistration, the server 108 can send a message to the first user device104 during device registration to indicate that the video callingfunction is not authorized or available to the first user device 104.After registration is complete, if the first user device 104 roams to adifferent access network that supports video calling, the server 108 cansend a message to the first user device 104 or other devices indicatingthat video calling is now authorized and available to the first userdevice 104.

The above-described techniques can be implemented in digital and/oranalog electronic circuitry, or in computer hardware, firmware,software, or in combinations of them. The implementation can be as acomputer program product, i.e., a computer program tangibly embodied ina machine-readable storage device, for execution by, or to control theoperation of, a data processing apparatus, e.g., a programmableprocessor, a computer, and/or multiple computers. A computer program canbe written in any form of computer or programming language, includingsource code, compiled code, interpreted code and/or machine code, andthe computer program can be deployed in any form, including as astand-alone program or as a subroutine, element, or other unit suitablefor use in a computing environment. A computer program can be deployedto be executed on one computer or on multiple computers at one or moresites.

Method steps can be performed by one or more processors executing acomputer program to perform functions of the invention by operating oninput data and/or generating output data. Method steps can also beperformed by, and an apparatus can be implemented as, special purposelogic circuitry, e.g., a FPGA (field programmable gate array), a FPAA(field-programmable analog array), a CPLD (complex programmable logicdevice), a PSoC (Programmable System-on-Chip), ASIP(application-specific instruction-set processor), or an ASIC(application-specific integrated circuit), or the like. Subroutines canrefer to portions of the stored computer program and/or the processor,and/or the special circuitry that implement one or more functions.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital or analog computer.Generally, a processor receives instructions and data from a read-onlymemory or a random access memory or both. The essential elements of acomputer are a processor for executing instructions and one or morememory devices for storing instructions and/or data. Memory devices,such as a cache, can be used to temporarily store data. Memory devicescan also be used for long-term data storage. Generally, a computer alsoincludes, or is operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks. A computer canalso be operatively coupled to a communications network in order toreceive instructions and/or data from the network and/or to transferinstructions and/or data to the network. Computer-readable storagemediums suitable for embodying computer program instructions and datainclude all forms of volatile and non-volatile memory, including by wayof example semiconductor memory devices, e.g., DRAM, SRAM, EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and optical disks,e.g., CD, DVD, HD-DVD, and Blu-ray disks. The processor and the memorycan be supplemented by and/or incorporated in special purpose logiccircuitry.

To provide for interaction with a user, the above described techniquescan be implemented on a computer in communication with a display device,e.g., a CRT (cathode ray tube), plasma, or LCD (liquid crystal display)monitor, for displaying information to the user and a keyboard and apointing device, e.g., a mouse, a trackball, a touchpad, or a motionsensor, by which the user can provide input to the computer (e.g.,interact with a user interface element). Other kinds of devices can beused to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, and/ortactile input.

The above described techniques can be implemented in a distributedcomputing system that includes a back-end component. The back-endcomponent can, for example, be a data server, a middleware component,and/or an application server. The above described techniques can beimplemented in a distributed computing system that includes a front-endcomponent. The front-end component can, for example, be a clientcomputer having a graphical user interface, a Web browser through whicha user can interact with an example implementation, and/or othergraphical user interfaces for a transmitting device. The above describedtechniques can be implemented in a distributed computing system thatincludes any combination of such back-end, middleware, or front-endcomponents.

The components of the computing system can be interconnected bytransmission medium, which can include any form or medium of digital oranalog data communication (e.g., a communication network). Transmissionmedium can include one or more packet-based networks and/or one or morecircuit-based networks in any configuration. Packet-based networks caninclude, for example, the Internet, a carrier internet protocol (IP)network (e.g., local area network (LAN), wide area network (WAN), campusarea network (CAN), metropolitan area network (MAN), home area network(HAN)), a private IP network, an IP private branch exchange (IPBX), awireless network (e.g., radio access network (RAN), Bluetooth, Wi-Fi,WiMAX, general packet radio service (GPRS) network, HiperLAN), and/orother packet-based networks. Circuit-based networks can include, forexample, the public switched telephone network (PSTN), a legacy privatebranch exchange (PBX), a wireless network (e.g., RAN, code-divisionmultiple access (CDMA) network, time division multiple access (TDMA)network, global system for mobile communications (GSM) network), and/orother circuit-based networks.

Information transfer over transmission medium can be based on one ormore communication protocols. Communication protocols can include, forexample, Ethernet protocol, Internet Protocol (IP), Voice over IP(VOIP), a Peer-to-Peer (P2P) protocol, Hypertext Transfer Protocol(HTTP), Session Initiation Protocol (SIP), H.323, Media Gateway ControlProtocol (MGCP), Signaling System #7 (SS7), a Global System for MobileCommunications (GSM) protocol, a Push-to-Talk (PTT) protocol, a PTT overCellular (POC) protocol, and/or other communication protocols.

Devices of the computing system can include, for example, a computer, acomputer with a browser device, a telephone, an IP phone, a mobiledevice (e.g., cellular phone, personal digital assistant (PDA) device,laptop computer, electronic mail device), and/or other communicationdevices. The browser device includes, for example, a computer (e.g.,desktop computer, laptop computer) with a World Wide Web browser (e.g.,Microsoft® Internet Explorer® available from Microsoft Corporation,Mozilla® Firefox available from Mozilla Corporation). Mobile computingdevice include, for example, a Blackberry®. IP phones include, forexample, a Cisco® Unified IP Phone 7985G available from Cisco Systems,Inc, and/or a Cisco® Unified Wireless Phone 7920 available from CiscoSystems, Inc.

One skilled in the art will realize the invention may be embodied inother specific forms without departing from the spirit or essentialcharacteristics thereof. The foregoing embodiments are therefore to beconsidered in all respects illustrative rather than limiting of theinvention described herein. Scope of the invention is thus indicated bythe appended claims, rather than by the foregoing description, and allchanges that come within the meaning and range of equivalency of theclaims are therefore intended to be embraced therein.

What is claimed is:
 1. A method for authorizing access by a user deviceto at least one service offered over an Internet Protocol (IP) network,comprising: receiving, by a server, a SIP message from the user device,wherein the SIP message includes information that indicates that theuser device is configured to support the at least one service;retrieving from a database, by the server, policy data associated withthe user device; validating, by the server, based on the policy datathat the user device is authorized to advertise the at least one serviceand the at least one service is available for access by the user device;and when said validating determines that the at least one service isunauthorized or unavailable for access by the user device, modifying, bythe server, the received message to generate a modified message,modifying said received message including omitting from said modifiedmessage information corresponding to the at least one service that isunauthorized or unavailable for access by the user device whileincluding information from said received message indicating one or moreauthorized and available services for the user device; forwarding, bythe server, the modified message to a second user device or to a networkserver; and dynamically updating the policy data associated with theuser device based on a change in at least one parameter associated withthe user device or the IP network.
 2. The method of claim 1, whereinsaid forwarding includes forwarding the modified message to a seconduser; wherein the received message is one of a SIP INVITE message and aSIP OPTIONS message; wherein a Contact header of said received SIPmessage includes information indicating that the user device isconfigured to support image share and video share services; and whereinmodifying said received message to generate a modified message includesremoving from the Contact header of said received SIP message theinformation indicating that the user device is configured to supportsaid video share services.
 3. The method of claim 1, wherein modifyingsaid received message to generate a modified message includes: addinginformation indicating that a service which was indicated by saidreceived message to be supported by said user device is unavailable,said modified message including said added information.
 4. The method ofclaim 1 wherein forwarding, by the modified message includes: forwardingthe modified message to a second user device, said second user devicebeing a user device with which said first user device may establish acommunications session.
 5. The method of claim 1, wherein the receivedmessage and the modified message are the same type of SIP messages. 6.The method of claim 1 wherein the policy data indicates the one or moreauthorized services currently available to the user device.
 7. Themethod of claim 1 wherein said dynamically updating the policy dataassociated with the user device includes: examining the at least oneparameter associated with the user device or the IP network; determiningone or more services currently authorized and available for use by theuser device based on the at least one parameter; and removing at least aportion of the policy data corresponding to a service currentlyunavailable or unauthorized to the user device based on the determining.8. The method of claim 7 wherein the at least one parameter describesuser location, user device network access capability, user devicehardware capability, availability of a network resource, or acombination thereof.
 9. The method of claim 1 wherein retrieving fromthe database the policy data comprises the server sending a DiameterServer Assignment request to the database.
 10. The method of claim 1further comprising; subscribing, by the user device, to the server fornotification of a change in service availability or authorization to theuser device; and notifying the user device, by the server, if the userdevice is not authorized to access a service or the service is notavailable to the user device.
 11. The method of claim 1 wherein the userdevice is configured to support the one or more authorized services. 12.A method for authorizing access by a user device to at least one serviceoffered over an internet Protocol (IP) network, comprising; receiving,by a server, a SIP message from the user device, wherein the SIP messageincludes information that indicates that the user device is configuredto support the at least one service, retrieving from a database, by theserver, policy data associated with the user device, said retrievingfrom the database the policy data comprises the server sending aDiameter Server Assignment request to the database; validating, by theserver, based on the policy data that the user device is authorized toadvertise the at least one service and the at least one service isavailable for access by the user device; and when said validatingdetermines that the at least one service is unauthorized or unavailablefor access by the user device, modifying, by the server, the receivedmessage to generate a modified message, modifying said received messageincluding omitting from said modified message information correspondingto the at least one service that is unauthorized or unavailable foraccess by the user device while including information from said receivedmessage indicating one or more authorized and available services for theuser device; and forwarding, by the server, the modified message to asecond user device or to a network server.
 13. The method of claim 1further comprising: including, by the server, the at least one servicein a message that is unauthorized or unavailable for access by the userdevice if the at least one service becomes authorized and available tothe user device; and forwarding, by the server, the message to indicatethat the at least one service is authorized and available to the userdevice.
 14. A system for authorizing access by a user device to at leastone service offered over an IP network, comprising: a database forstoring policy data associated with the user device; and a server forreceiving a SIP message from the user device, said SIP message includinginformation indicating that the user device is configured to support theat least one service, the server being implemented in computer hardwareincluding a processor for executing instructions and a memory device,said server being configured to: retrieve from the database policy dataassociated with the user device; validate based on the policy data thatthe user device is authorized to advertise the at least one service andthe at least one service is available for access by the user device; andwhen said validating determines that the at least one service isunauthorized or unavailable for access by the user device, modify thereceived message to generate a modified message, modifying said receivedmessage including omitting from said modified message informationcorresponding to the at least one service that is unauthorized orunavailable for access by the user device while including informationfrom said received message to indicate one or more authorized andavailable services for the user device; forward the modified message toa second user device or to a network server; and dynamically update thepolicy data associated with the user device based on a change in atleast one parameter associated with the user device or the IP network.15. The system of claim 14 wherein the server resides in a Serving CallSession Control Function (S-CSCF) node or an application server of anInternet Protocol Multimedia Subsystem (IMS) network.
 16. The system ofclaim 14 wherein the database storing the policy data is a HomeSubscriber Service (HSS) in an IMS network.
 17. The system of claim 14wherein the server resides in a SIP registrar or a home proxy of anon-IMS network.
 18. The system of claim 14 further comprising a moduleelectronic circuitry for updating the policy data associated with theuser device to indicate one or more services currently available andauthorized to the user device.
 19. The system of claim 18 wherein themodule electronic circuitry updates the policy data based on informationrelated to user location, user device network access capability, userdevice hardware capability, availability of a network resource, or acombination thereof.
 20. A computer program product, tangibly embodiedin a non-transitory computer readable medium, for authorizing access bya user device to at least one service offered over an IP network, thecomputer program product including instructions being operable to causea data processing apparatus to: receive a SIP message from the userdevice, wherein the SIP message includes information that indicates thatthe user device is configured to support the at least one service;retrieve from a database policy data associated with the user device;validate based on the policy data that the user device is authorized toadvertise the at least one service and the at least one service isavailable for access by the user device; and when said validatingdetermines that the at least one service is unauthorized or unavailablefor access by the user device, modify the received message to generate amodified message, modifying said received message including omittingfrom said modified message information corresponding to the at least oneservice that is unauthorized or unavailable for access by the userdevice while including information from said received message toindicate one or more authorized and available services for the userdevice without including the at least one service; forward the modifiedmessage to a second user device or to a network server; and dynamicallyupdate the policy data associated with the user device based on a changein at least one parameter associated with the user device or the IPnetwork.